package com.info33.platform.system.dao;

import java.util.List;

import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.info33.platform.system.entity.SysMenuUser;
import com.info33.platform.system.vo.SysAuthorityVO;
import com.info33.platform.system.vo.SysMenuUserVO;
import com.info33.platform.system.vo.SysTenantMenuVO;

/**
 * @author admin
 */
@Repository
public interface SysMenuUserDao extends BaseMapper<SysMenuUser>{

	/**
	 * 添加岗位-菜单信息
	 * @param menuUserList
	 * @return
	 */
	int batchInsert(@Param("list") List<SysMenuUser> menuUserList);

	/**
	 * 根据menuId批量删除
	 * @param menuIds
	 * @return
	 */
	int deleteByMenuId(@Param("list") List<Long> menuIds);

	/**
	 * 分页获取菜单权限列表
	 * @param page
	 * @param sysMenuUser
	 * @param tenantId
	 * @return
	 */
	IPage<SysAuthorityVO> pageMenuUserList(IPage<SysAuthorityVO> page, @Param("sysMenuUser") SysMenuUser sysMenuUser, 
			@Param("tenantId") Long tenantId);

	/**
	 * 根据type和对应id获取菜单权限信息
	 * @param sysMenuUserDTO
	 * @param tenantId
	 * @return
	 */
	List<SysMenuUser> getByType(@Param("sysMenuUser")SysMenuUser sysMenuUser, @Param("tenantId")Long tenantId);

	/**
	 * 根据type和对应id获取菜单信息
	 * @param sysMenuUser
	 * @return
	 */
	List<SysTenantMenuVO> getMenuByType(@Param("sysMenuUser")SysMenuUser sysMenuUser);

	/**
	 * 根据菜单id获取权限
	 * @param menuId
	 * @return
	 */
	List<SysMenuUserVO> getAuthority(Long menuId);

	/**
	 * 根据type和对应id获取名称
	 * @param sysMenuUser
	 * @return
	 */
	String getNameByType(@Param("sysMenuUser")SysMenuUser sysMenuUser);


}